[tool.poetry]
name = "agpt"
version = "0.5.0"
authors = [
  "Significant Gravitas <support@agpt.co>",
]
readme = "README.md"
description = "An open-source attempt to make GPT-4 autonomous"
homepage = "https://github.com/Significant-Gravitas/AutoGPT/tree/master/autogpts/autogpt"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]
packages = [{ include = "autogpt" }]


[tool.poetry.scripts]
autogpt = "autogpt.app.cli:cli"
serve = "autogpt.app.cli:serve"


[tool.poetry.dependencies]
python = "^3.10"
auto-gpt-plugin-template = {git = "https://github.com/Significant-Gravitas/Auto-GPT-Plugin-Template", rev = "0.1.0"}
# autogpt-forge = { path = "../forge" }
autogpt-forge = {git = "https://github.com/Significant-Gravitas/AutoGPT.git", rev = "ab05b7ae70754c063909", subdirectory = "autogpts/forge"}
beautifulsoup4 = "^4.12.2"
boto3 = "^1.33.6"
charset-normalizer = "^3.1.0"
click = "*"
colorama = "^0.4.6"
demjson3 = "^3.0.0"
distro = "^1.8.0"
docker = "*"
duckduckgo-search = "^5.0.0"
en-core-web-sm = {url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.5.0/en_core_web_sm-3.5.0-py3-none-any.whl"}
fastapi = "^0.109.1"
ftfy = "^6.1.1"
gitpython = "^3.1.32"
google-api-python-client = "*"
gTTS = "^2.3.1"
hypercorn = "^0.14.4"
inflection = "*"
jsonschema = "*"
numpy = "*"
openai = "^1.7.2"
orjson = "^3.8.10"
Pillow = "*"
pinecone-client = "^2.2.1"
playsound = "~1.2.2"
pydantic = "*"
pylatexenc = "*"
pypdf = "^3.1.0"
python-docx = "*"
python-dotenv = "^1.0.0"
pyyaml = "^6.0"
readability-lxml = "^0.8.1"
redis = "*"
requests = "*"
selenium = "^4.11.2"
sentry-sdk = "^1.40.4"
spacy = "^3.0.0"
tenacity = "^8.2.2"
tiktoken = "^0.5.0"
webdriver-manager = "*"

# OpenAI and Generic plugins import
openapi-python-client = "^0.14.0"

# Benchmarking
agbenchmark = { path = "../../benchmark", optional = true }
# agbenchmark = {git = "https://github.com/Significant-Gravitas/AutoGPT.git", subdirectory = "benchmark", optional = true}
google-cloud-logging = "^3.8.0"
google-cloud-storage = "^2.13.0"
psycopg2-binary = "^2.9.9"

[tool.poetry.extras]
benchmark = ["agbenchmark"]

[tool.poetry.group.dev.dependencies]
black = "*"
boto3-stubs = {extras = ["s3"], version = "^1.33.6"}
flake8 = "*"
gitpython = "^3.1.32"
isort = "*"
mypy = "*"
pre-commit = "*"
types-beautifulsoup4 = "*"
types-colorama = "*"
types-Markdown = "*"
types-Pillow = "*"

# Testing
asynctest = "*"
coverage = "*"
pytest = "*"
pytest-asyncio = "*"
pytest-benchmark = "*"
pytest-cov = "*"
pytest-integration = "*"
pytest-mock = "*"
pytest-recording = "*"
pytest-xdist = "*"
vcrpy = {git = "https://github.com/Significant-Gravitas/vcrpy.git", rev = "master"}


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"


[tool.black]
line-length = 88
target-version = ['py310']
include = '\.pyi?$'
packages = ["autogpt"]
extend-exclude = '.+/(dist|.venv|venv|build|data)/.+'


[tool.isort]
profile = "black"
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 88
sections = [
    "FUTURE",
    "STDLIB",
    "THIRDPARTY",
    "FIRSTPARTY",
    "LOCALFOLDER"
]
extend_skip = [
    "agbenchmark_config/temp_folder/",
    "data/",
]


[tool.mypy]
follow_imports = 'skip'
check_untyped_defs = true
disallow_untyped_calls = true
files = [
    'autogpt/**/*.py',
    'tests/**/*.py'
]

[[tool.mypy.overrides]]
module = [
    'requests.*',
    'yaml.*'
]
ignore_missing_imports = true


[tool.pytest.ini_options]
markers = [
    "requires_openai_api_key",
    "requires_huggingface_api_key"
]
